The present invention relates to digital communications across error-inducing links and more particularly to systems and methods for ameliorating errors by retransmitting unsuccessfully communicated data upon request.
Retransmitting data upon request is a well-known method for improving error performance in data communication systems where errors are detectable and a link from the receiver to the transmitter is available. Systems that provide this retransmission capability are often known as ARQ (Automatic Retransmission ReQuest) systems. For example, if a single request for retransmission may always be made and fulfilled, a channel having a bit error rate of 1×10−6 may have its effective bit error rate reduced to 1×10−12.
A disadvantage of ARQ is that link capacity is in part consumed by requests for retransmission and by retransmitted data. Thus there is associated overhead. This overhead will vary depending on the ARQ system design. ARQ design parameters that affect overhead include the number of repeat requests generated per error, the number of retransmissions for every repeat request, and the block sizes for which retransmission is requested. For example, increased numbers of repeat requests and/or retransmission will improve link error performance but at the expense of link capacity.
Also, ARQ is typically associated with an increase in latency across the link. Received data is often buffered to allow time for retransmission requests to be processed for data blocks received in error. The more time is allowed, the higher the probability that one or more retransmission requests will ultimately result in a successful transmission. On the other hand, some types of traffic, e.g., voice cannot tolerate high latency.
With the increased use of Internet Protocol (IP) in the Internet and other applications, it is desirable to support IP networks with two-way point-to-point links that are subject to transmission errors. For example, it is highly desirable to use wireless point-to-point links to support IP links. However, voice and other types of traffic increasingly carried by IP networks cannot tolerate high latency but can tolerate somewhat higher error rates. Current ARQ schemes have difficulty adequately servicing mixes of voice and data traffic because of their differing requirements for latency and error rates.
What is needed is an ARQ scheme that provides programmable overhead and latency. Furthermore, it is desirable to minimize latency and overhead caused by ARQ while maximizing link error performance.